package jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import javaTTpackage.Fecha;

public class PersonaJDBC {

	public static void insertarpersona(String dni, String nombre,
			String apellido1, String apellido2, String tipo, String n,
			Integer numero, Integer puerta, Integer cp, Integer telefono,
			String usuario, String contrasenya, Fecha f) throws SQLException {

		conexion.con();

		String query = ("Insert into persona (dni, nombre, primer_apellido, segundo_apellido,fecha_nacimiento) values ('"
				+ dni
				+ "','"
				+ nombre
				+ "','"
				+ apellido1
				+ "','"
				+ apellido2
				+ "','" + f.convertirSQL() + "');");

		if (!PersonaJDBC.comprobarpersona(dni)) {

			/* Inserta Persona */
			conexion.insertar(query);
			Integer id_persona = PersonaJDBC.consultarpersona(dni);
			/* Inserta direccion */
			DireccionJDBC.insertardireccion(tipo, n, numero, puerta, cp);
			Integer id_direccion = DireccionJDBC.consultardireccion(tipo, n,
					numero, puerta, cp);
			/* Inserta cliente */
			ClienteJDBC.insertarcliente(id_persona);
			Integer id_cliente = ClienteJDBC.buscacliente(id_persona);
			/* Relaciona cliente con direccion */
			ClienteJDBC.insertarclientedireccion(id_cliente, id_direccion);
			/* Inserta telefono */
			TelefonoJDBC.insertartelefono(telefono);
			/* Relaciona cliente con telefono */
			Integer id_telefono = TelefonoJDBC.consultartelefono(telefono);
			ClienteJDBC.insertarclientetelefono(id_cliente, id_telefono);
			/* Inserta datos de acceso de la persona */
			AccesoJDBC.insertaracceso(id_persona, usuario, contrasenya);

		} else {
			System.out.println("Ya existe en la base de datos");
		}
		conexion.cerrarconexion();

	}

	public static boolean comprobarpersona(String dni) throws SQLException {
		boolean resul = false;
		ResultSet c = conexion
				.crearconsulta("Select * from persona where dni='" + dni + "';");
		if (c.next()) {
			resul = true;
		}

		return resul;
	}

	public static Integer consultarpersona(String dni) throws SQLException {
		Integer idpersona = null;
		conexion.con();
		comprobarpersona(dni);
		ResultSet comprobacion = conexion
				.crearconsulta("Select * from persona where dni='" + dni + "';");
		while (comprobacion.next()) {
			idpersona = comprobacion.getInt("id_persona");
		}
		conexion.cerrarconexion();

		return idpersona;

	}

}
